package com.probox.common.entity.domain.customer;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.probox.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 自定义权益对象 level_privilege
 *
 * @author zhusiyu
 * @date 2021-05-27
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("level_privilege")
@ApiModel(description = "自定义权益类")
public class LevelPrivilege implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 权益ID
     */
    //默认主键自增
    @ApiModelProperty(value = "权益ID")
    @TableId(value = "PRIVILEGE_UID", type = IdType.AUTO)
    private Long privilegeUid;
    /**
     * 平台ID
     */
    @ApiModelProperty(value = "平台ID")
    @Excel(name = "平台ID")
    private Long platformId;
    /**
     * 权益名称
     */
    @ApiModelProperty(value = "权益名称")
    @Excel(name = "权益名称")
    private String privilegeName;
    /**
     * 权益展示名称
     */
    @ApiModelProperty(value = "权益展示名称")
    @Excel(name = "权益展示名称")
    private String privilegeShowname;
    /**
     * 权益图标
     */
    @ApiModelProperty(value = "权益图标")
    @Excel(name = "权益图标")
    private String privilegeImages;
    /**
     * 权益简介
     */
    @ApiModelProperty(value = "权益简介")
    @Excel(name = "权益简介")
    private String privilegeIntroduce;

    /**
     * 权益banner图
     */
    private String privilegeBanner;

    /**
     * 权益对象
     */
    private String privilegeObject;

    /**
     * 注意事项
     */
    private String privilegeTip;

    /**
     * 是否是新权益
     */
    private String isNew;

    /**
     * 是否开通
     */
    private String isOpen;

    /**
     * 是否升级礼包（0：权益,1:升级礼包）
     */
    @ApiModelProperty(value = "是否升级礼包")
    @Excel(name = "是否升级礼包", readConverterExp = "0=：权益,1:升级礼包")
    private String isUpgrade;
    /**
     * 是否为赠送类型（0：否，1：是）
     */
    @ApiModelProperty(value = "是否为赠送类型")
    @Excel(name = "是否为赠送类型", readConverterExp = "0=：否，1：是")
    private String isGiveType;

    /**
     * 权益单位
     */
    @ApiModelProperty(value = "权益单位")
    @Excel(name = "权益单位")
    private String platformUnit;

    /**
     * 权益状态（0：未使用，1：已使用）
     */
    @ApiModelProperty(value = "权益状态")
    @Excel(name = "权益状态", readConverterExp = "0=：未使用，1：已使用")
    private String privilegeStatus;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @Excel(name = "创建人")
    private Long createUser;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    @Excel(name = "修改人")
    private Long updateUser;
    /**
     * 状态 1有效 0无效
     */
    @ApiModelProperty(value = "状态")
    @Excel(name = "状态 1有效 0无效")
    private String status;

    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人名称")
    @Excel(name = "创建人名称")
    private String createName;

    /**
     * 创建人名称
     */
    @ApiModelProperty(value = "创建人名称")
    @Excel(name = "修改人名称")
    private String updateName;

    public LevelPrivilege(Long platformId, String privilegeName, String privilegeShowname, String privilegeImages, String privilegeIntroduce, String isUpgrade, String isGiveType, String platformUnit, String privilegeStatus, Date createTime, Long createUser, String status, String createName) {
        this.privilegeUid = privilegeUid;
        this.platformId = platformId;
        this.privilegeName = privilegeName;
        this.privilegeShowname = privilegeShowname;
        this.privilegeImages = privilegeImages;
        this.privilegeIntroduce = privilegeIntroduce;
        this.isUpgrade = isUpgrade;
        this.isGiveType = isGiveType;
        this.platformUnit = platformUnit;
        this.privilegeStatus = privilegeStatus;
        this.createTime = createTime;
        this.createUser = createUser;
        this.status = status;
        this.createName = createName;
    }
}
